iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0
  • Rhino: 以Java寫的JavaScript直譯器,可讓JavaScript存取全部的Java API。
  • Node: google V8 JavaScript直譯器,基於C++的JavaScript直譯器,並可繫結至底層Unix API。

Node

  • Node在process命名空間實作了幾個全域值

    • process.version node版本
    • process.argv 命令列引數作為陣列
    • process.env 環境變數物件,process.env.PATH
    • process.pid process id
    • process.getuid() 回傳使用者id
    • process.cwd() 回傳目前工作目錄
    • process.chdir() 更換目錄
    • process.exit 離開
  • 產生事件的node物件(event emitters): 會定義一個on()的方法來註冊事件與處理函式

    • emitter.on(name,fn) 註冊fn來處理name事件
    • emitter.addListener(name,fn) addListener 等同 on
    • emitter.once(name,fn) 僅處理一次
    • emitter.listeners(name) 回傳處裡函式(fn)組成的陣列
    • emitter.removeListeners(name,fn_1) 在事件name將fn_1移除
    • emitter.removeAllListeners(name) 在事件name所有處理函式移除
  • stream API(讀取)

    • stream.on("data",fn) 當資料可以取用時,會將資料傳給fn()當引數
    • stream.on("end",fn) 當EOF發生時(表示後續沒有資料了)
    • stream.on("error",fn_E) 當發生錯誤時,將例外傳給fn_E()
    • stream.readable 當stream仍式開始的可讀資料流則回true
    • stream.pause() 暫停data事件
    • stream.resume() 重新啟動
  • stream API(寫入)

    • stream.wirte(buffer) 寫入2進位資料
    • stream.write(string , encoding) 寫入字串,編碼預設為utf-8
    • stream.end() 關閉資料流
    • stream.end(buffer) 寫入最後一段資料然後關閉
    • stream.end(string, encoding) 寫入最後一段資料然後關閉
    • stream.writeable 是否資料流式可寫入的
    • stream.on("drain", fn) 內部緩衝區被清空時呼叫fn
  • Node 使用檔案系統
    var fs = require('fs') 載入 file System api

// 使用同步讀取test.json 並使用utf8編碼
var syncfileText = fs.readFileSync('test.json','utf8'); 

// 使用非同步讀取test.json 並使用utf8編碼
var fileText = fs.readFile('test.json',function(error,buffer){
    if(error) throw error;
    process(buffer);
}); 

上一篇
Day 13: 子集與擴充
下一篇
Day 15: 瀏覽器中的JavaScript (Part 1)
系列文
Javascript 犀牛本-濃縮再濃縮 提煉再提煉30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言